.TH std::ranges::stride_view::end 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::stride_view::end \- std::ranges::stride_view::end

.SH Synopsis
   constexpr auto end() requires (!__simple_view<V>);         \fB(1)\fP (since C++23)
   constexpr auto end() const requires ranges::range<const V> \fB(2)\fP (since C++23)

   Returns an iterator or a sentinel representing the end of the stride_view.

   Let base_ and stride_ be the underlying data members.

   1) Let Const be defined as using Const = false; and Base as using Base = V;.
   2) Let Const be defined as using Const = true; and Base as using Base = const V;.

   Equivalent to:

 if constexpr (ranges::common_range<Base> &&
               ranges::sized_range<Base> &&
               ranges::forward_range<Base>)
 {
     auto missing = (stride_ - ranges::distance(base_) % stride_) % stride_;
     return iterator<Const>(this, ranges::end(base_), missing);
 }
 else if constexpr (ranges::common_range<Base> &&
                    !ranges::bidirectional_range<Base>)
 {
     return iterator<Const>(this, ranges::end(base_));
 }
 else
 {
     return std::default_sentinel;
 }

.SH Parameters

   \fI(none)\fP

.SH Return value

   An iterator to the element following the last element, if the underlying view V
   models common_range. Otherwise, the std::default_sentinel which compares equal to
   the end iterator.

.SH Notes

   stride_view<V> models common_range whenever the underlying view V does.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

   begin       returns an iterator to the beginning
   (C++23)     \fI(public member function)\fP
   ranges::end returns a sentinel indicating the end of a range
   (C++20)     (customization point object)

.SH Category:
     * Todo no example
